/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.sgs.mb;

import br.com.sgs.auxiliar.ProcessoAux;
import br.com.sgs.bundle.MessageBundleLoader;
import br.com.sgs.entity.Processo;
import br.com.sgs.fachada.*;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Eric
 */

@ManagedBean(name="processoMB")
@ViewScoped
public class ProcessoMB implements Serializable {
    
    
    private List<Processo> lsprocesso = new ArrayList<Processo>();
    
    private Processo processoselecionado;
       
    //parametro de busca
    private String busca;
    
    /**
     * Creates a new instance of InstituicaoNew
     */
    public ProcessoMB() {
    }
    
    @PostConstruct
    public void init() {
        try {

            ProcessoIFachada ifach = new ProcessoFachada();
            setLsprocesso(ifach.findProcesso());

        } catch (Exception e) {
            System.err.println("Erro no init do statusMB");
        }
    }
   
    public void atualizarTabela() {
        try {

            ProcessoIFachada ifach = new ProcessoFachada();
            setLsprocesso(ifach.findProcesso());


        } catch (Exception e) {
            System.err.println("Erro no atualizarTabela");
        }
    }

    
    public void buscar() {
        try {
            
            ProcessoIFachada ifach = new ProcessoFachada();
            setLsprocesso(ifach.findProcesso());
            
        } catch (Exception e) {
            System.err.println("Erron no método buscar");
            e.printStackTrace();
        }
    }
    
    public void excluir() {
        try {

            IFachada ifach = new Fachada();

            Processo processo = getProcessoselecionado();

//            processo.setStatus(ProcessoAux.EXCLUIDO);
            ifach.alterar(processo);

            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, MessageBundleLoader.getMessage("msgExcluidoSucesso"), ""));
            atualizarTabela();

        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, MessageBundleLoader.getMessage("msgexclusaoErro"), ""));
        }

    }

    public String editar() {
        try {
           return "PROCESSOEDIT";
        } catch (Exception e) {
           return null;
        }
    }
    
    public void selecionarRegistro(Processo processo) {
        try {

            setProcessoselecionado(processo);

        } catch (Exception e) {
            System.err.println("Erro no metodo selecionarRegistro");
        }

    }
    
    public String strStatusLabel(int st) {
        return MessageBundleLoader.getMessage(ProcessoAux.getStatusLabel(st));
    }

    /**
     * @return the lsprocesso
     */
    public List<Processo> getLsprocesso() {
        return lsprocesso;
    }

    /**
     * @param lsprocesso the lsprocesso to set
     */
    public void setLsprocesso(List<Processo> lsprocesso) {
        this.lsprocesso = lsprocesso;
    }

    /**
     * @return the processoselecionado
     */
    public Processo getProcessoselecionado() {
        return processoselecionado;
    }

    /**
     * @param processoselecionado the processoselecionado to set
     */
    public void setProcessoselecionado(Processo processoselecionado) {
        this.processoselecionado = processoselecionado;
    }

    /**
     * @return the busca
     */
    public String getBusca() {
        return busca;
    }

    /**
     * @param busca the busca to set
     */
    public void setBusca(String busca) {
        this.busca = busca;
    }

  

  
}
